package com.sdhs.examinemanage.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdhs.businessfile.domain.BusinessFile;
import com.sdhs.common.annotation.Excel;
import com.sdhs.common.core.domain.BaseEntity;

import lombok.Data;

/**
 * 项目考核管理对象 gc_examine_manage
 * 
 * @author wanglei
 * @date 2025-03-27
 */
@Data
public class GcExamineManage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 关联项目id */
    @Excel(name = "关联项目id")
    private Long projectId;

    /** 进度（20分） */
    @Excel(name = "进度", readConverterExp = "2=0分")
    private BigDecimal progress;

    /** 质量（20分） */
    @Excel(name = "质量", readConverterExp = "2=0分")
    private BigDecimal quality;

    /** 安全（15分） */
    @Excel(name = "安全", readConverterExp = "1=5分")
    private BigDecimal safe;

    /** 资金（15分） */
    @Excel(name = "资金", readConverterExp = "1=5分")
    private BigDecimal capitalCost;

    /** 文明施工（10分） */
    @Excel(name = "文明施工", readConverterExp = "1=0分")
    private BigDecimal civilizedConstruction;

    /** 综合管理（20分） */
    @Excel(name = "综合管理", readConverterExp = "2=0分")
    private BigDecimal generalManage;

    /** 加分项（15分） */
    @Excel(name = "加分项", readConverterExp = "1=5分")
    private BigDecimal pluses;

    /** 总得分 */
    @Excel(name = "总得分")
    private BigDecimal totalScore;

    /** 考核周期 */
    @Excel(name = "考核周期")
    private String assessmentCycle;

    /** 创建人 */
    @Excel(name = "创建人")
    private String creater;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updater;

    /** 是否删除，删除标记（0正常 1删除） */
    @Excel(name = "是否删除，删除标记", readConverterExp = "0=正常,1=删除")
    private String isDelete;
    
    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNumber;
    
    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;
    
    /** 版本号 */
    @Excel(name = "版本号")
    private Integer version;
    
    /** 申诉日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申诉日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date appealDate;
    
    /** 申诉原因 */
    @Excel(name = "申诉原因")
    private String appealReason;
    
    /** 申诉备注 */
    private String appealRemarks;
    
    /** 办理意见 */
    private String handleOpinion;
    
    /** 申诉状态 */
    private String appealStatus;

    private List<GcExamineManageScore> scoreList;
    
    /** 考核附件 */
    private List<BusinessFile> fileList;
    
    /** 申诉附件 */
    private List<BusinessFile> fileListAppeal;
    
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("progress", getProgress())
            .append("quality", getQuality())
            .append("safe", getSafe())
            .append("capitalCost", getCapitalCost())
            .append("civilizedConstruction", getCivilizedConstruction())
            .append("generalManage", getGeneralManage())
            .append("pluses", getPluses())
            .append("totalScore", getTotalScore())
            .append("assessmentCycle", getAssessmentCycle())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("creater", getCreater())
            .append("updater", getUpdater())
            .append("isDelete", getIsDelete())
            .toString();
    }
}
